01
CMake初识
CMake是什么 · 为什么需要CMake · 与Makefile的关系 · 安装与验证
入门概念
02
第一个CMake项目
创建CMakeLists.txt · cmake_minimum_required · project · add_executable · 编译运行
实战Hello
03
CMake基础语法
注释 · 变量定义与引用 · set() · message() · 数学运算
语法变量
04
CMake中的数据类型
字符串 · 列表 · 布尔值 · 缓存变量 · 环境变量
类型缓存
05
CMake流程控制
if-elseif-else · foreach · while · break · continue
逻辑循环
06
CMake函数与宏
function() · macro() · 参数传递 · 返回值处理
函数宏
07
CMake中的文件操作
file() 读写/下载/压缩/遍历 · configure_file()
文件IO
08
CMake中的路径管理
CMAKE_SOURCE_DIR · CMAKE_BINARY_DIR · PROJECT_SOURCE_DIR · 相对/绝对路径
路径变量
09
CMake中的库管理
add_library() 静态/动态库 · target_link_libraries() · 可见性
库链接
10
CMake中的头文件管理
target_include_directories · include_directories · find_path
头文件包含
11
CMake中的查找依赖
find_package · Find/Config模块 · find_library · find_file
依赖查找
12
CMake中的编译选项
add_compile_options · target_compile_options · CMAKE_CXX_FLAGS · 优化级别
编译选项
13
CMake中的生成器表达式
$<...> 语法 · 条件编译 · 配置逻辑 · Debug/Release区分
表达式条件
14
CMake中的自定义目标
add_custom_target · add_custom_command · 构建前/后事件
自定义事件
15
CMake中的安装规则
install() TARGETS/FILES/DIRECTORIES/SCRIPT · 安装路径配置
安装部署
16
CMake中的测试支持
enable_testing · add_test · ctest · 测试用例编写与运行
测试CTest
17
CMake中的CTest高级用法
测试标签 · 超时 · 资源锁定 · 并行测试 · 覆盖率
高级标签
18
CMake中的CDash集成
CDash是什么 · 配置提交 · 构建报告 · 测试结果上传
CDash仪表盘
19
CMake中的多模块项目
add_subdirectory · 子项目组织 · 跨模块依赖管理
模块组织
20
CMake中的工具链管理
CMAKE_TOOLCHAIN_FILE · 交叉编译 · 系统根目录设置
工具链交叉编译
21
CMake中的预设模式
CMakePresets.json · 构建预设 · 测试预设 · 打包预设
预设配置
22
CPack入门
CPack是什么 · 与CMake关系 · 安装与基本配置
CPack打包
23
CPack打包类型
生成器详解 ZIP/TGZ/DEB/RPM/NSIS/DMG · 选择打包格式
格式生成器
24
CPack配置文件
CPackConfig.cmake · CPackSourceConfig.cmake · 常用变量设置
配置变量
25
CPack中的组件打包
COMPONENT参数 · 组件依赖 · 分组 · 按组件安装
组件模块
26
CPack中的安装脚本
预安装脚本 · 后安装脚本 · 自定义安装逻辑
脚本定制
27
CPack中的版本管理
版本号设置 · 版本文件生成 · 版本兼容性检查
版本兼容
28
CPack中的许可证管理
许可证文件包含 · 许可证选择 · 许可证显示
许可证合规
29
CPack实战案例一
C++命令行工具 · 打包为DEB和RPM包
实战DEBRPM
30
CPack实战案例二
Qt界面桌面应用 · 打包为NSIS安装包和DMG镜像
实战QtNSISDMG